1. Field of the Invention
The present invention relates to a motion vector detecting apparatus employed in video telephone systems or video teleconference systems in which moving picture signals are compressed at a high compression ratio and the compressed signals are transmitted to destination devices.
2. Prior Art
In video telephone systems or video teleconference systems, moving picture signals to be transmitted have an extremely large amount of information, so that the moving picture signals must be compressed at a high compression ratio before transmission. There is a sequential frame differential compression method which satisfies this requirement of the compression of moving picture signals.
In this method, differences between pixel data of current frame to be transmitted and pixel data of a corresponding preceding frame which has been transmitted are respectively calculated, after which the calculated differences are transmitted as sequential frame differential error data instead of transmitting the pixel data.
This method is effective in the case of transmitting moving pictures having no or little motion because there is a high sequential correlation in respective neighboring frames, and the moving picture data can be compressed at a high compression ratio. However, there is a problem in that in the case of transmitting moving pictures having active motion, the amount of data to be transmitted increases because there is low sequential correlation in respective neighboring frames.
In order to overcome the problem described above, a motion compensation sequential frame differential compression method is used. In this method, before calculating the sequential frame differential error data based on the pixel data of a current frame and the pixel data of the preceding frame, a motion vector is calculated based on the current frame and the preceding frame. After this, modifying the respective pixel data of the preceding frame so that the image constituted by the modified pixel data moves according to the calculated motion vector, and then calculating the sequential frame differential error data based on the pixel data of the current frame and the modified pixel data of the preceding frame, the sequential frame differential error data and the motion vector are transmitted.
Hereinafter, description of an idea of a motion vector will be given in detail with reference to FIG. 11. In FIG. 11, 100 designates a screen comprising a current frame, and 200 designates the preceding screen comprising the preceding frame. 100A is a image block included in the current screen 100, and corresponds to a image block 200A which is included in the preceding screen 200. In the preceding screen 200, the block 100A is indicated by dot lines, so that the position of the image block 100A in the screen 200 equals that in the screen 100. The motion vector is defined as the arrow line V which runs from the central point of the block 100A to the central point of the block 200A in the image 200.
In order to determine that the arrow line V is the motion vector, it is necessary to evaluate whether or not the image block 100A has the same image as the image block 200A. This evaluation is carried out according to the following method, for example. The evaluation method will be described assuming a case in which both image block 100A and image block 200A are constituted by the same size matrix, for example an M.times.M pixel matrix. First, the concentration differences between the pixels of the image block 100A and the corresponding pixels of the image block 200A are calculated, after which the absolute values of the calculated differences are respectively calculated, after which the obtained absolute values are summed. This results in the cost data Dij, shown in the formula (1), which indicate the difference between the image of the image block 100A and the image of the image block 200A. In the formula (1), a(i,j) corresponds to the concentration of a pixel included in the image block 100A, and b(k+i, l+j) corresponds to the concentration of the corresponding pixel included in the image block 200A. ##EQU1## Next, the Dij are judged based on predetermined reference data. When the cost data are less than the reference data, this indicates that the image blocks 100A and 200A have the same image, whereas when the Dij are greater than those of the reference data, this indicates that the image of the image block 100A is different from that of the image block 200A. There are other evaluation methods for evaluating the difference between the two image blocks. For example, there is an evaluation method in which the squares of the concentration differences of pixel pairs are calculated, after which the calculated squares are summed together, thereby resulting in the Dij.
In the case where the evaluation result indicates that the image of the image block 200A is different from the image of the image block 100A, the same evaluations are repeatedly performed sequentially using the other image blocks in the vicinity of the image block 200A until an image block is discovered from a preceding screen 200, which has cost data which are less than the reference data.
In the other method, in which a range defined in the screen 100, evaluation are performed using the respective image blocks included in the range, and a search is conducted for the image block which presents the minimum Dij, the image block for which the search is conducted is taken to correspond to the image block 100A in the current screen.
There are various methods for evaluating image blocks and for selecting image blocks based on the evaluation result. A preferable method is selected and used for detecting motion vectors, considering the required accuracy, signal transmission rate, and the other requirements in connection with the hardware and systems.
Hereinafter, the image blocks, for example the image block 100A, included in the current screen, and compared with the image block of the preceding screen, will be term "detection image blocks", since these blocks are evaluated in order to detect a motion vector. There are some methods for determining the range which includes the detection image blocks. There is a typical method in which the image block in the preceding screen 200A, positioned at the same position of the detection image block 100A, is determined to be a central image block which is to be compared with the detection block 100A, and a range having a constant square and surrounding the determined central image block is determined to be the range in which a search is conducted for image blocks corresponding to the detection image blocks. In this method, the size of the range can be determined at will. However, in the conventional method, in which in the case where the size of the detection image block is M.times.M, the size of the range is conventionally determined to be 2M.times.2M or (2M-1).times.(2M-1).
Accordingly, in the case of using the method described above, there is a problem in that the number of the evaluations for detecting the motion vector becomes extremely large, so that extremely large calculation steps are required because evaluations must be performed which consider all cases in which the detection image block can be moved from the respective positions included in the area of the preceding screen determined by the size of the range described above. For example, in the case where the search range is (2M-1).times.(2M-1), the evaluation time of the cost data is M.times.M=M.sup.2. That is, in the case where M=16, the number of calculations equals 256. This number of evaluations is coincident with the number of the pixels included in a range in which the center pixel of the search image block can be moved.
In order to improve the throughput of motion vector detecting apparatuses, it is necessary to reduce the number of calculations for detecting motion vectors. For that reason, the inventor of the present invention previously presented an invention capable of reducing the number of evaluations. The invention was filed with the Japanese Patent Office as Japanese Patent Application No. 1-244454. Hereinafter, a description will be given of the motion vector detecting apparatus disclosed in the above described application, with reference to FIGS. 12 through 14. For instance, the configuration used for the case in which M=3, the size of detection block is M.times.M, and the search range for the image block corresponding to the detection block is 5.times.5 is shown in FIGS. 12 and 13, for example. In FIG. 13, 200B designates the range in which a search is conducted for an image block corresponding to the detection image block. The detection image block shown in FIG. 12 is positioned in the center of the search range 200B shown in FIG. 13. In the motion vector apparatus, the search range 200B is divided into a left half search range block b and a right half search range block b'. Additionally, in the motion vector detecting apparatus, the left half search range block and the right half search range block are entered into a motion vector calculation section, whereby the motion vector is calculated based on the entered blocks.
FIG. 15 is a block diagram showing a configuration of the motion vector detecting apparatus disclosed in the above-described application. In FIG. 15, 150 designates an input data selection circuit; 151 through 153 respectively designate calculation circuits; 154 designates an output data selection circuit; 155 designates a minimum value detection circuit, and 156 designates a control signal generation circuit. These elements 151 through 156 described above constitute a motion vector detecting section. The control signal generation circuit 155 generates control signals and supplies the generated control signals to the other elements. FIG. 14 shows the operation of the motion vector detecting section shown in FIG. 15. Hereinafter, the operation of the motion vector detecting section will be described with reference to FIG. 14. Pixel data a (i,j) which constitute an input image block a included in a current screen are sequentially supplied to the first input terminal of the input data selection circuit 150. On the other hand, pixel data b(i,j) included in a preceding screen are divided into two series of input pixel data b and b'. The input pixel data b and b' are sequentially supplied to the second input terminal and third input terminal of the input data selection circuit 150. The input data selection circuit 150 arranges pairs of pixel data a(i,j) and b(k+i,l+j), pairs of pixel data a(i,j) and b(k+i,l+1+j), and pairs of pixel data a(i,j) and b(k+i,l+2+j), and these pairs are thereby respectively supplied to the calculation circuits 151 through 153. The calculation circuits 151 through 153 respectively calculate Dij based on the pairs of pixel data entered therein. The Dij calculated by the calculation circuits 151 through 153 are entered in the minimum value detection circuit 155. The minimum value detection circuit 155 compares the Dij sequentially entered therein, and detects a Dij having a minimum value. The motion vector is determined based on the timing at which the cost data having the minimum value is obtained.
However, there is no device which can supply pixel data to the motion vector detecting section shown in FIG. 10 in the required manner shown in FIG. 14, so that the motion vector detecting apparatus shown in FIG. 15 is not effectively driven.